package protobuf {
	import com.netease.protobuf.*;
	use namespace com.netease.protobuf.used_by_generated_code;
	import com.netease.protobuf.fieldDescriptors.*;
	import flash.utils.Endian;
	import flash.utils.IDataInput;
	import flash.utils.IDataOutput;
	import flash.utils.IExternalizable;
	import flash.errors.IOError;
	import flash.utils.ByteArray;
	// @@protoc_insertion_point(imports)

	// @@protoc_insertion_point(class_metadata)
	public dynamic final class TABLE_BRIEF_INFO extends com.netease.protobuf.Message {
		/**
		 *  @private
		 */
		public static const TABLE_NAME:FieldDescriptor$TYPE_BYTES = new FieldDescriptor$TYPE_BYTES("protobuf.TABLE_BRIEF_INFO.table_name", "tableName", (1 << 3) | com.netease.protobuf.WireType.LENGTH_DELIMITED);

		public var tableName:flash.utils.ByteArray;

		/**
		 *  @private
		 */
		public static const TABLE_ID:FieldDescriptor$TYPE_UINT64 = new FieldDescriptor$TYPE_UINT64("protobuf.TABLE_BRIEF_INFO.table_id", "tableId", (2 << 3) | com.netease.protobuf.WireType.VARINT);

		public var tableId:UInt64;

		/**
		 *  @private
		 */
		public static const IP:FieldDescriptor$TYPE_BYTES = new FieldDescriptor$TYPE_BYTES("protobuf.TABLE_BRIEF_INFO.ip", "ip", (3 << 3) | com.netease.protobuf.WireType.LENGTH_DELIMITED);

		private var ip$field:flash.utils.ByteArray;

		public function clearIp():void {
			ip$field = null;
		}

		public function get hasIp():Boolean {
			return ip$field != null;
		}

		public function set ip(value:flash.utils.ByteArray):void {
			ip$field = value;
		}

		public function get ip():flash.utils.ByteArray {
			return ip$field;
		}

		/**
		 *  @private
		 */
		public static const PORT:FieldDescriptor$TYPE_UINT32 = new FieldDescriptor$TYPE_UINT32("protobuf.TABLE_BRIEF_INFO.port", "port", (4 << 3) | com.netease.protobuf.WireType.VARINT);

		private var port$field:uint;

		private var hasField$0:uint = 0;

		public function clearPort():void {
			hasField$0 &= 0xfffffffe;
			port$field = new uint();
		}

		public function get hasPort():Boolean {
			return (hasField$0 & 0x1) != 0;
		}

		public function set port(value:uint):void {
			hasField$0 |= 0x1;
			port$field = value;
		}

		public function get port():uint {
			return port$field;
		}

		/**
		 *  @private
		 */
		public static const TYPE:FieldDescriptor$TYPE_UINT32 = new FieldDescriptor$TYPE_UINT32("protobuf.TABLE_BRIEF_INFO.type", "type", (5 << 3) | com.netease.protobuf.WireType.VARINT);

		private var type$field:uint;

		public function clearType():void {
			hasField$0 &= 0xfffffffd;
			type$field = new uint();
		}

		public function get hasType():Boolean {
			return (hasField$0 & 0x2) != 0;
		}

		public function set type(value:uint):void {
			hasField$0 |= 0x2;
			type$field = value;
		}

		public function get type():uint {
			return type$field;
		}

		/**
		 *  @private
		 */
		public static const MIN_BLINDS:FieldDescriptor$TYPE_DOUBLE = new FieldDescriptor$TYPE_DOUBLE("protobuf.TABLE_BRIEF_INFO.min_blinds", "minBlinds", (7 << 3) | com.netease.protobuf.WireType.FIXED_64_BIT);

		private var min_blinds$field:Number;

		public function clearMinBlinds():void {
			hasField$0 &= 0xfffffffb;
			min_blinds$field = new Number();
		}

		public function get hasMinBlinds():Boolean {
			return (hasField$0 & 0x4) != 0;
		}

		public function set minBlinds(value:Number):void {
			hasField$0 |= 0x4;
			min_blinds$field = value;
		}

		public function get minBlinds():Number {
			return min_blinds$field;
		}

		/**
		 *  @private
		 */
		public static const MAX_BLINDS:FieldDescriptor$TYPE_DOUBLE = new FieldDescriptor$TYPE_DOUBLE("protobuf.TABLE_BRIEF_INFO.max_blinds", "maxBlinds", (8 << 3) | com.netease.protobuf.WireType.FIXED_64_BIT);

		private var max_blinds$field:Number;

		public function clearMaxBlinds():void {
			hasField$0 &= 0xfffffff7;
			max_blinds$field = new Number();
		}

		public function get hasMaxBlinds():Boolean {
			return (hasField$0 & 0x8) != 0;
		}

		public function set maxBlinds(value:Number):void {
			hasField$0 |= 0x8;
			max_blinds$field = value;
		}

		public function get maxBlinds():Number {
			return max_blinds$field;
		}

		/**
		 *  @private
		 */
		public static const MIN_BUY_AMOUNT:FieldDescriptor$TYPE_DOUBLE = new FieldDescriptor$TYPE_DOUBLE("protobuf.TABLE_BRIEF_INFO.min_buy_amount", "minBuyAmount", (9 << 3) | com.netease.protobuf.WireType.FIXED_64_BIT);

		private var min_buy_amount$field:Number;

		public function clearMinBuyAmount():void {
			hasField$0 &= 0xffffffef;
			min_buy_amount$field = new Number();
		}

		public function get hasMinBuyAmount():Boolean {
			return (hasField$0 & 0x10) != 0;
		}

		public function set minBuyAmount(value:Number):void {
			hasField$0 |= 0x10;
			min_buy_amount$field = value;
		}

		public function get minBuyAmount():Number {
			return min_buy_amount$field;
		}

		/**
		 *  @private
		 */
		public static const MAX_BUY_AMOUNT:FieldDescriptor$TYPE_DOUBLE = new FieldDescriptor$TYPE_DOUBLE("protobuf.TABLE_BRIEF_INFO.max_buy_amount", "maxBuyAmount", (10 << 3) | com.netease.protobuf.WireType.FIXED_64_BIT);

		private var max_buy_amount$field:Number;

		public function clearMaxBuyAmount():void {
			hasField$0 &= 0xffffffdf;
			max_buy_amount$field = new Number();
		}

		public function get hasMaxBuyAmount():Boolean {
			return (hasField$0 & 0x20) != 0;
		}

		public function set maxBuyAmount(value:Number):void {
			hasField$0 |= 0x20;
			max_buy_amount$field = value;
		}

		public function get maxBuyAmount():Number {
			return max_buy_amount$field;
		}

		/**
		 *  @private
		 */
		public static const RESPONSE_TIME:FieldDescriptor$TYPE_UINT32 = new FieldDescriptor$TYPE_UINT32("protobuf.TABLE_BRIEF_INFO.response_time", "responseTime", (11 << 3) | com.netease.protobuf.WireType.VARINT);

		private var response_time$field:uint;

		public function clearResponseTime():void {
			hasField$0 &= 0xffffffbf;
			response_time$field = new uint();
		}

		public function get hasResponseTime():Boolean {
			return (hasField$0 & 0x40) != 0;
		}

		public function set responseTime(value:uint):void {
			hasField$0 |= 0x40;
			response_time$field = value;
		}

		public function get responseTime():uint {
			return response_time$field;
		}

		/**
		 *  @private
		 */
		public static const DISCARD_TIME:FieldDescriptor$TYPE_UINT32 = new FieldDescriptor$TYPE_UINT32("protobuf.TABLE_BRIEF_INFO.discard_time", "discardTime", (12 << 3) | com.netease.protobuf.WireType.VARINT);

		private var discard_time$field:uint;

		public function clearDiscardTime():void {
			hasField$0 &= 0xffffff7f;
			discard_time$field = new uint();
		}

		public function get hasDiscardTime():Boolean {
			return (hasField$0 & 0x80) != 0;
		}

		public function set discardTime(value:uint):void {
			hasField$0 |= 0x80;
			discard_time$field = value;
		}

		public function get discardTime():uint {
			return discard_time$field;
		}

		/**
		 *  @private
		 */
		public static const PLAYER_COUNT:FieldDescriptor$TYPE_UINT32 = new FieldDescriptor$TYPE_UINT32("protobuf.TABLE_BRIEF_INFO.player_count", "playerCount", (13 << 3) | com.netease.protobuf.WireType.VARINT);

		private var player_count$field:uint;

		public function clearPlayerCount():void {
			hasField$0 &= 0xfffffeff;
			player_count$field = new uint();
		}

		public function get hasPlayerCount():Boolean {
			return (hasField$0 & 0x100) != 0;
		}

		public function set playerCount(value:uint):void {
			hasField$0 |= 0x100;
			player_count$field = value;
		}

		public function get playerCount():uint {
			return player_count$field;
		}

		/**
		 *  @private
		 */
		public static const MAX_PLAYER_COUNT:FieldDescriptor$TYPE_UINT32 = new FieldDescriptor$TYPE_UINT32("protobuf.TABLE_BRIEF_INFO.max_player_count", "maxPlayerCount", (14 << 3) | com.netease.protobuf.WireType.VARINT);

		private var max_player_count$field:uint;

		public function clearMaxPlayerCount():void {
			hasField$0 &= 0xfffffdff;
			max_player_count$field = new uint();
		}

		public function get hasMaxPlayerCount():Boolean {
			return (hasField$0 & 0x200) != 0;
		}

		public function set maxPlayerCount(value:uint):void {
			hasField$0 |= 0x200;
			max_player_count$field = value;
		}

		public function get maxPlayerCount():uint {
			return max_player_count$field;
		}

		/**
		 *  @private
		 */
		public static const TILE_COUNT:FieldDescriptor$TYPE_UINT32 = new FieldDescriptor$TYPE_UINT32("protobuf.TABLE_BRIEF_INFO.tile_count", "tileCount", (15 << 3) | com.netease.protobuf.WireType.VARINT);

		private var tile_count$field:uint;

		public function clearTileCount():void {
			hasField$0 &= 0xfffffbff;
			tile_count$field = new uint();
		}

		public function get hasTileCount():Boolean {
			return (hasField$0 & 0x400) != 0;
		}

		public function set tileCount(value:uint):void {
			hasField$0 |= 0x400;
			tile_count$field = value;
		}

		public function get tileCount():uint {
			return tile_count$field;
		}

		/**
		 *  @private
		 */
		public static const VPP_REQUIRED:FieldDescriptor$TYPE_DOUBLE = new FieldDescriptor$TYPE_DOUBLE("protobuf.TABLE_BRIEF_INFO.vpp_required", "vppRequired", (16 << 3) | com.netease.protobuf.WireType.FIXED_64_BIT);

		private var vpp_required$field:Number;

		public function clearVppRequired():void {
			hasField$0 &= 0xfffff7ff;
			vpp_required$field = new Number();
		}

		public function get hasVppRequired():Boolean {
			return (hasField$0 & 0x800) != 0;
		}

		public function set vppRequired(value:Number):void {
			hasField$0 |= 0x800;
			vpp_required$field = value;
		}

		public function get vppRequired():Number {
			return vpp_required$field;
		}

		/**
		 *  @private
		 */
		public static const OPERATOR:FieldDescriptor$TYPE_BYTES = new FieldDescriptor$TYPE_BYTES("protobuf.TABLE_BRIEF_INFO.operator", "operator", (17 << 3) | com.netease.protobuf.WireType.LENGTH_DELIMITED);

		private var operator$field:flash.utils.ByteArray;

		public function clearOperator():void {
			operator$field = null;
		}

		public function get hasOperator():Boolean {
			return operator$field != null;
		}

		public function set operator(value:flash.utils.ByteArray):void {
			operator$field = value;
		}

		public function get operator():flash.utils.ByteArray {
			return operator$field;
		}

		/**
		 *  @private
		 */
		public static const CURRENCY:FieldDescriptor$TYPE_BYTES = new FieldDescriptor$TYPE_BYTES("protobuf.TABLE_BRIEF_INFO.currency", "currency", (18 << 3) | com.netease.protobuf.WireType.LENGTH_DELIMITED);

		private var currency$field:flash.utils.ByteArray;

		public function clearCurrency():void {
			currency$field = null;
		}

		public function get hasCurrency():Boolean {
			return currency$field != null;
		}

		public function set currency(value:flash.utils.ByteArray):void {
			currency$field = value;
		}

		public function get currency():flash.utils.ByteArray {
			return currency$field;
		}

		/**
		 *  @private
		 */
		public static const RAKE:FieldDescriptor$TYPE_DOUBLE = new FieldDescriptor$TYPE_DOUBLE("protobuf.TABLE_BRIEF_INFO.rake", "rake", (19 << 3) | com.netease.protobuf.WireType.FIXED_64_BIT);

		private var rake$field:Number;

		public function clearRake():void {
			hasField$0 &= 0xffffefff;
			rake$field = new Number();
		}

		public function get hasRake():Boolean {
			return (hasField$0 & 0x1000) != 0;
		}

		public function set rake(value:Number):void {
			hasField$0 |= 0x1000;
			rake$field = value;
		}

		public function get rake():Number {
			return rake$field;
		}

		/**
		 *  @private
		 */
		override used_by_generated_code final function writeToBuffer(output:com.netease.protobuf.WritingBuffer):void {
			com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.LENGTH_DELIMITED, 1);
			com.netease.protobuf.WriteUtils.write$TYPE_BYTES(output, this.tableName);
			com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.VARINT, 2);
			com.netease.protobuf.WriteUtils.write$TYPE_UINT64(output, this.tableId);
			if (hasIp) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.LENGTH_DELIMITED, 3);
				com.netease.protobuf.WriteUtils.write$TYPE_BYTES(output, ip$field);
			}
			if (hasPort) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.VARINT, 4);
				com.netease.protobuf.WriteUtils.write$TYPE_UINT32(output, port$field);
			}
			if (hasType) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.VARINT, 5);
				com.netease.protobuf.WriteUtils.write$TYPE_UINT32(output, type$field);
			}
			if (hasMinBlinds) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.FIXED_64_BIT, 7);
				com.netease.protobuf.WriteUtils.write$TYPE_DOUBLE(output, min_blinds$field);
			}
			if (hasMaxBlinds) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.FIXED_64_BIT, 8);
				com.netease.protobuf.WriteUtils.write$TYPE_DOUBLE(output, max_blinds$field);
			}
			if (hasMinBuyAmount) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.FIXED_64_BIT, 9);
				com.netease.protobuf.WriteUtils.write$TYPE_DOUBLE(output, min_buy_amount$field);
			}
			if (hasMaxBuyAmount) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.FIXED_64_BIT, 10);
				com.netease.protobuf.WriteUtils.write$TYPE_DOUBLE(output, max_buy_amount$field);
			}
			if (hasResponseTime) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.VARINT, 11);
				com.netease.protobuf.WriteUtils.write$TYPE_UINT32(output, response_time$field);
			}
			if (hasDiscardTime) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.VARINT, 12);
				com.netease.protobuf.WriteUtils.write$TYPE_UINT32(output, discard_time$field);
			}
			if (hasPlayerCount) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.VARINT, 13);
				com.netease.protobuf.WriteUtils.write$TYPE_UINT32(output, player_count$field);
			}
			if (hasMaxPlayerCount) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.VARINT, 14);
				com.netease.protobuf.WriteUtils.write$TYPE_UINT32(output, max_player_count$field);
			}
			if (hasTileCount) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.VARINT, 15);
				com.netease.protobuf.WriteUtils.write$TYPE_UINT32(output, tile_count$field);
			}
			if (hasVppRequired) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.FIXED_64_BIT, 16);
				com.netease.protobuf.WriteUtils.write$TYPE_DOUBLE(output, vpp_required$field);
			}
			if (hasOperator) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.LENGTH_DELIMITED, 17);
				com.netease.protobuf.WriteUtils.write$TYPE_BYTES(output, operator$field);
			}
			if (hasCurrency) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.LENGTH_DELIMITED, 18);
				com.netease.protobuf.WriteUtils.write$TYPE_BYTES(output, currency$field);
			}
			if (hasRake) {
				com.netease.protobuf.WriteUtils.writeTag(output, com.netease.protobuf.WireType.FIXED_64_BIT, 19);
				com.netease.protobuf.WriteUtils.write$TYPE_DOUBLE(output, rake$field);
			}
			for (var fieldKey:* in this) {
				super.writeUnknown(output, fieldKey);
			}
		}

		/**
		 *  @private
		 */
		override used_by_generated_code final function readFromSlice(input:flash.utils.IDataInput, bytesAfterSlice:uint):void {
			var table_name$count:uint = 0;
			var table_id$count:uint = 0;
			var ip$count:uint = 0;
			var port$count:uint = 0;
			var type$count:uint = 0;
			var min_blinds$count:uint = 0;
			var max_blinds$count:uint = 0;
			var min_buy_amount$count:uint = 0;
			var max_buy_amount$count:uint = 0;
			var response_time$count:uint = 0;
			var discard_time$count:uint = 0;
			var player_count$count:uint = 0;
			var max_player_count$count:uint = 0;
			var tile_count$count:uint = 0;
			var vpp_required$count:uint = 0;
			var operator$count:uint = 0;
			var currency$count:uint = 0;
			var rake$count:uint = 0;
			while (input.bytesAvailable > bytesAfterSlice) {
				var tag:uint = com.netease.protobuf.ReadUtils.read$TYPE_UINT32(input);
				switch (tag >> 3) {
				case 1:
					if (table_name$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.tableName cannot be set twice.');
					}
					++table_name$count;
					this.tableName = com.netease.protobuf.ReadUtils.read$TYPE_BYTES(input);
					break;
				case 2:
					if (table_id$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.tableId cannot be set twice.');
					}
					++table_id$count;
					this.tableId = com.netease.protobuf.ReadUtils.read$TYPE_UINT64(input);
					break;
				case 3:
					if (ip$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.ip cannot be set twice.');
					}
					++ip$count;
					this.ip = com.netease.protobuf.ReadUtils.read$TYPE_BYTES(input);
					break;
				case 4:
					if (port$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.port cannot be set twice.');
					}
					++port$count;
					this.port = com.netease.protobuf.ReadUtils.read$TYPE_UINT32(input);
					break;
				case 5:
					if (type$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.type cannot be set twice.');
					}
					++type$count;
					this.type = com.netease.protobuf.ReadUtils.read$TYPE_UINT32(input);
					break;
				case 7:
					if (min_blinds$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.minBlinds cannot be set twice.');
					}
					++min_blinds$count;
					this.minBlinds = com.netease.protobuf.ReadUtils.read$TYPE_DOUBLE(input);
					break;
				case 8:
					if (max_blinds$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.maxBlinds cannot be set twice.');
					}
					++max_blinds$count;
					this.maxBlinds = com.netease.protobuf.ReadUtils.read$TYPE_DOUBLE(input);
					break;
				case 9:
					if (min_buy_amount$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.minBuyAmount cannot be set twice.');
					}
					++min_buy_amount$count;
					this.minBuyAmount = com.netease.protobuf.ReadUtils.read$TYPE_DOUBLE(input);
					break;
				case 10:
					if (max_buy_amount$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.maxBuyAmount cannot be set twice.');
					}
					++max_buy_amount$count;
					this.maxBuyAmount = com.netease.protobuf.ReadUtils.read$TYPE_DOUBLE(input);
					break;
				case 11:
					if (response_time$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.responseTime cannot be set twice.');
					}
					++response_time$count;
					this.responseTime = com.netease.protobuf.ReadUtils.read$TYPE_UINT32(input);
					break;
				case 12:
					if (discard_time$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.discardTime cannot be set twice.');
					}
					++discard_time$count;
					this.discardTime = com.netease.protobuf.ReadUtils.read$TYPE_UINT32(input);
					break;
				case 13:
					if (player_count$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.playerCount cannot be set twice.');
					}
					++player_count$count;
					this.playerCount = com.netease.protobuf.ReadUtils.read$TYPE_UINT32(input);
					break;
				case 14:
					if (max_player_count$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.maxPlayerCount cannot be set twice.');
					}
					++max_player_count$count;
					this.maxPlayerCount = com.netease.protobuf.ReadUtils.read$TYPE_UINT32(input);
					break;
				case 15:
					if (tile_count$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.tileCount cannot be set twice.');
					}
					++tile_count$count;
					this.tileCount = com.netease.protobuf.ReadUtils.read$TYPE_UINT32(input);
					break;
				case 16:
					if (vpp_required$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.vppRequired cannot be set twice.');
					}
					++vpp_required$count;
					this.vppRequired = com.netease.protobuf.ReadUtils.read$TYPE_DOUBLE(input);
					break;
				case 17:
					if (operator$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.operator cannot be set twice.');
					}
					++operator$count;
					this.operator = com.netease.protobuf.ReadUtils.read$TYPE_BYTES(input);
					break;
				case 18:
					if (currency$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.currency cannot be set twice.');
					}
					++currency$count;
					this.currency = com.netease.protobuf.ReadUtils.read$TYPE_BYTES(input);
					break;
				case 19:
					if (rake$count != 0) {
						throw new flash.errors.IOError('Bad data format: TABLE_BRIEF_INFO.rake cannot be set twice.');
					}
					++rake$count;
					this.rake = com.netease.protobuf.ReadUtils.read$TYPE_DOUBLE(input);
					break;
				default:
					super.readUnknown(input, tag);
					break;
				}
			}
		}

	}
}
